/**
 * ant design 全局引入部分
 * 在三个及三个以上的地方引用时，请在这边定义并修改之前涉及到的部分。
 * icon除外，请在使用页引入。
 */
import {
  Alert,
  Button,
  Card,
  Checkbox,
  Comment,
  Col,
  DatePicker,
  Divider,
  Drawer,
  Dropdown,
  Form,
  Input,
  InputNumber,
  List,
  Menu,
  Modal,
  message,
  Pagination,
  Radio,
  Row,
  Select,
  Spin,
  Statistic,
  Tabs,
  Table,
  Tooltip,
  Upload,
  ConfigProvider
} from 'ant-design-vue';
const MESSAGE_KEY = 'message';
const MODAL_KEY = 'modal';

export default {
  install(app) {
    // 表单部分
    app.use(Form);
    app.use(Button); // 按钮
    app.use(Input); // 输入框
    app.use(InputNumber); // 数字输入框
    app.use(Select); // 下拉菜单
    app.use(Radio); // 单选
    app.use(Checkbox); // 多选
    app.use(Comment); // 评论
    app.use(DatePicker); // 日期选择器
    app.use(Table); // 表格
    app.use(Pagination); // 页脚
    app.use(Upload); // 上传
    // 结构部分
    app.use(Menu); // 菜单
    app.use(Row); // 栅格 - 行
    app.use(Col); // 栅格 - 列
    app.use(Divider); // 横线
    app.use(List); // 列表
    // 功能部分
    app.use(Card); // 卡片
    app.use(Dropdown); // 下拉
    app.use(Spin); // 加载框
    app.use(Tabs); // 选项卡
    app.use(Tooltip); // 文字提示
    app.use(Alert); // 警告提示
    app.use(Statistic); // 数值统计
    app.use(Modal); // 对话框
    app.use(Drawer); // 抽
    // 全局化配置
    app.use(ConfigProvider);
    // 消息弹窗
    app.provide(MESSAGE_KEY, message); // setup() {const message=inject('message');}
    app.provide(MODAL_KEY, Modal); // setup() {const modal=inject('modal');}
    app.config.globalProperties.$msg = message;
  }
};
